package com.smforj.ssm.modules.sys.service;

import java.util.List;

import com.smforj.ssm.modules.eslib.domain.Circulation;
import com.smforj.ssm.modules.eslib.domain.CirculationLog;
import com.smforj.ssm.modules.eslib.domain.vo.LibBookVo;
import com.smforj.ssm.modules.lib.domain.CheckInResponse;
import com.smforj.ssm.modules.lib.domain.CheckOutResponse;


public interface CirculationService  {
	
	/***
	 * 根据RFID借阅信息
	 * @param tstm
	 * @return
	 * @date 2017-6-30 下午6:45:37
	 */
	Circulation getCirculationByRfid(String rfid);

	/***
	 * 根据图书条码借阅信息
	 * @param tstm
	 * @return
	 * @date 2017-6-30 下午6:45:37
	 */
	Circulation getCirculationBytsm(String tsm);
	
	/***
	 * 根据借阅者查询借阅信息
	 * @param jsrbh
	 * @return
	 * @date 2017-6-30 下午7:30:50
	 */
	List<Circulation> getCirculations(String jsrbh);
	
	/***
	 * 保存借阅信息
	 * @param cir
	 * @return
	 * @date 2017-6-30 下午7:32:19
	 */
	int insertCirculation(Circulation cir); 
	
	/****
	 * 借阅
	 * @param book
	 * @return
	 * @date 2017-7-5 下午3:20:49
	 */
	CheckOutResponse checkOut(LibBookVo book,String readerId);
	
	/****
	 * 续借
	 * @param book
	 * @return
	 * @date 2017-7-5 下午3:20:49
	 */
	CheckOutResponse reNew(LibBookVo book,String readerId); 
	/****
	 * 归还
	 * @param book
	 * @return
	 * @date 2017-7-5 下午3:50:41
	 */
	CheckInResponse checkIn(LibBookVo book);
	/***
	 * 删除借阅信息
	 * @param cir
	 * @return
	 * @date 2017-6-30 下午7:32:19
	 */
	int deleteCirculation(Circulation cir);
	/***
	 * 保存借阅信息历史,同时删除借阅信息
	 * @param cir
	 * @return
	 * @date 2017-6-30 下午7:32:19
	 */
	int insertCirculationLog(CirculationLog cirLog); 
	
	/***
	 * 根据读者查询其超期未交罚款信息
	 * @param cir
	 * @return
	 * @date 2017-6-30 下午7:32:19
	 */
	List<CirculationLog> selectCirculationLogByJsrbh(String jsrbh); 
	
	/***
	 * 修改罚款信息
	 * @param cir
	 * @return
	 * @date 2017-6-30 下午7:32:19
	 */
	int payFee(String jsrbh,String barcode,Double fj); 
	
	
	
}
